#pragma once

#include "Precompiled.hpp"

class Entity
{
public:
  Entity();
  ~Entity();
  void AddComponent(TypelessHandle& newComponent);
  void RemoveComponent(TypelessHandle& target);
  void BindEntities();
  TypelessHandle GetComponent(const std::type_info& componentType);
  Handle<Entity> GetSelf();
  void SetSelf(const Handle<Entity>& newSelf);
private:
  std::vector<TypelessHandle> components;
  Handle<Entity> self;
};